A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
A conventional network device, such as a router, typically includes a mechanism, such as a management interface, to locally or remotely configure the device. By interacting with the management interface, various clients, such as human users and automated scripts, can perform configuration tasks. For example, the clients may configure interface cards of the device, adjust parameters for supported network protocols, specify physical components within the device, modify routing information maintained by a router, access software modules and other resources residing on the device, and perform other configuration tasks.
The Simple Network Management Protocol (SNMP) is a standard defined by the Internet Engineering Task Force (IETF) for managing network devices. SNMP uses an extensible design that incorporates management information bases (MIBs) to define and store management data that is available in a managed device. Specifically, MIBs describe the structure of the management data of a network device by using a namespace that contains object identifiers. Each object identifier identifies a variable of management data within the network device that can be read or set by the client via SNMP, where the variable represents a specific characteristic (e.g. configurable parameter) about the managed device. MIBs typically manage two basic types of objects; scalar objects and tabular objects. Tabular objects define multiple related object instances and group them into MIB tables, sometimes called SNMP tables. MIBs are often hard-coded into a managed device, and a unique MIB typically exists for each management format area implemented by a management device. Management devices, such as computer consoles, utilize SNMP MIBs to manage devices of a network, such as routers, switches, and other network devices.
The SNMP standard defines several commands that an SNMP management application running on an SNMP management system must support for managing remote network devices. The SNMP management application issues the commands to an SNMP agent executing on the managed device. In the SNMP standard, these commands include Get, GetNext, Set, and GetBulk. When issued by the SNMP management application, the Get and GetNext commands, for example, each retrieve one or more scalar or tabular objects from a row of a MIB of the targeted network device.
The remote network device may prepare a response to a received a Get or GetNext command issued by the SNMP management application. If the request, i.e., a Get or GetNext command, requests more information than will fit within a single response, the remote network device may return a “tooBig” error in accordance with the SNMP standard. On receiving the tooBig error, the management application may split the original request into multiple requests to re-request the same information in smaller pieces, causing additional network traffic. If the original request included a request for a single management variable and the response varbind is too large to fit in a single response PDU, then the management application may not be able to retrieve the requested management variable from the remote network device.